home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / util1 / exc23.zip / EXC.V11 < prev    next >
Text File  |  1993-02-07  |  4KB  |  75 lines

  1. REVISIONS FOR VERSION 1.1 OF EXC.EXE
  2.  
  3. Many thanks to the few users who have reported problems and/or suggested
  4. enhancements.  If you don't report them and I don't find them, they don't 
  5. get fixed.
  6.  
  7.  
  8. 1. I apologize for the EXC.DOC file.  In my rush to get it documented and
  9.    uploaded, I neglected to spell check or proofread it.  It was terrible.
  10.    I hope it is much more readable now.
  11.  
  12. 2. Leading and trailing TAB characters (hex 09) were not being removed from
  13.    script lines, causing invalid command messages.
  14.  
  15. 3. There appears to be a need in the user community to repeat commands,
  16.    groups of commands and keys a known number of times to allow them to 
  17.    write smaller scripts.
  18.  
  19.    Added "ON n label".  This is a powerfull loop control command similar
  20.    to the logic used in FOR statements common in many programming languages.
  21.  
  22.    Added a repeat number that can be added to the end of a KEY command.  The
  23.    key that is specified will be repeated as many times as specified.  For
  24.    instance, "KEY <TAB> 5" stuffs five tabs into the keyboard buffer.
  25.  
  26. 4. Fixed a problem where certain invalid key mnemonics were not generating
  27.    error messages.
  28.  
  29. 5. If you loop through SEARCH commands looking for multiple possible messages
  30.    that could occur, each time the timer interrupt is invoked (18.2/sec) the
  31.    entire screen is read, reformatted to remove attributes and searched for
  32.    each SEARCH in the loop.  WAITFOR and WAITSCR have built-in one second
  33.    delays between screen reads to minimize this overhead.
  34.  
  35.    One solution is to stick a DELAY in the loop, but if you do this between
  36.    each SEARCH, execution of the script will slow down dramatically.
  37.  
  38.    I added a READ command that will read the screen and do nothing else.
  39.  
  40.    I then added a LOOK command that searches the screen buffer that was last 
  41.    read by a READ, SEARCH, WAITFOR or WAITSCR command.  It's just like the
  42.    SEARCH command without reading the screen prior to the search.
  43.  
  44.    EXAMPLE 1:                   EXAMPLE 2:          EXAMPLE 3:
  45.  
  46.    :Loop                        :Loop               :Loop
  47.      SEARCH "Continue?"           READ                SEARCH "Continue?"
  48.      IFY Continue                 LOOK "Continue?"    IFY Continue
  49.      LOOK "ERROR:"                IFY Continue        LOOK "ERROR:"
  50.      IFY Error                    LOOK "ERROR:"       IFY Error
  51.      GOTO Loop                    IFY Error           DELAY 1
  52.    :Continue                      DELAY 1             GOTO Loop
  53.      .                            GOTO Loop         :Continue
  54.      .                          :Continue             .
  55.    :Error                         .                   .
  56.      .                            .                 :Error
  57.      .                          :Error                .
  58.                                   .                   .
  59.                                   .
  60.  
  61.    In the above examples, Example 1 shows how you would have intuitavely
  62.    coded the script in version 1.0.  Adding a DELAY 1 at the end of the 
  63.    loop would have helped performance, but two screen reads would be per-
  64.    formed each second.  Example two demonstrates how READ and LOOK could
  65.    be used to make a very efficient loop.  Example 3 shows that, since
  66.    a READ followed by a LOOK is equal to a SEARCH, so the third example
  67.    is the best because it takes two iterations of the interrupt to process
  68.    each command in the script.  The first iteration reads and formats the 
  69.    command and the second executes it.
  70.  
  71. 6. Installed COMMAND.COM as the default program name on the command line.
  72.  
  73. 7. Modified QUIT and end0of-script logic to issue EXIT if COMMAND.COM was 
  74.    invoked.
  75.